YES 0.964
↳ HASKELL
↳ BR
((nub :: [()] -> [()]) :: [()] -> [()]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
nub :: Eq a => [a] -> [a]
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
((nub :: [()] -> [()]) :: [()] -> [()]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
nub :: Eq a => [a] -> [a]
|
import qualified List import qualified Prelude |
nub' [] vw = [] nub' (x : xs) ls
| x `elem` ls
= nub' xs ls | otherwise
= x : nub' xs (x : ls)
nub' [] vw = nub'3 [] vw nub' (x : xs) ls = nub'2 (x : xs) ls
nub'0 x xs ls True = x : nub' xs (x : ls)
nub'1 x xs ls True = nub' xs ls nub'1 x xs ls False = nub'0 x xs ls otherwise
nub'2 (x : xs) ls = nub'1 x xs ls (x `elem` ls)
nub'3 [] vw = [] nub'3 wv ww = nub'2 wv ww
undefined
| False
= undefined
undefined = undefined1
undefined0 True = undefined
undefined1 = undefined0 False
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
((nub :: [()] -> [()]) :: [()] -> [()]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||
nub :: Eq a => [a] -> [a]
|
import qualified List import qualified Prelude |
nub' l [] where
nub' [] vw = nub'3 [] vw nub' (x : xs) ls = nub'2 (x : xs) ls
nub'0 x xs ls True = x : nub' xs (x : ls)
nub'1 x xs ls True = nub' xs ls nub'1 x xs ls False = nub'0 x xs ls otherwise
nub'2 (x : xs) ls = nub'1 x xs ls (x `elem` ls)
nub'3 [] vw = [] nub'3 wv ww = nub'2 wv ww
nubNub'2 (x : xs) ls = nubNub'1 x xs ls (x `elem` ls)
nubNub' [] vw = nubNub'3 [] vw nubNub' (x : xs) ls = nubNub'2 (x : xs) ls
nubNub'1 x xs ls True = nubNub' xs ls nubNub'1 x xs ls False = nubNub'0 x xs ls otherwise
nubNub'0 x xs ls True = x : nubNub' xs (x : ls)
nubNub'3 [] vw = [] nubNub'3 wv ww = nubNub'2 wv ww
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
(nub :: [()] -> [()]) |
import qualified Maybe import qualified Prelude |
|||||||||
nub :: Eq a => [a] -> [a]
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ QDP
↳ QDPSizeChangeProof
new_nubNub'(:(@0, wx311), @0) → new_nubNub'(wx311, @0)
From the DPs we obtained the following set of size-change graphs: